離散傅立葉轉換(英語:Discrete Fourier Transform,縮寫為DFT),是傅立葉轉換在時域和頻域上都呈離散的形式,將信號的時域採樣轉換為其DTFT的頻域採樣。
在形式上,轉換兩端(時域和頻域上)的序列是有限長的,而實際上這兩組序列都應當被認為是離散週期信號的主值序列。即使對有限長的離散信號作DFT,也應當將其看作其週期延拓的轉換。在實際應用中通常採用快速傅立葉轉換計算DFT。
對於
點序列
,它的離散傅立葉轉換(DFT)為
![{\displaystyle {\hat {x}}[k]=\sum _{n=0}^{N-1}e^{-i{\frac {2\pi }{N}}nk}x[n]\qquad k=0,1,\ldots ,N-1.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/526d8c9103309b720516b7ee79e79186b15c81e3)
其中
是自然對數的底數,
是虛數單位。通常以符號
表示這一轉換,即
![{\displaystyle {\hat {x}}={\mathcal {F}}x}](https://wikimedia.org/api/rest_v1/media/math/render/svg/50a34b3fc82599a13b6db507f3e54b91dd4d1d1c)
離散傅立葉轉換的逆轉換(IDFT)為:
![{\displaystyle x\left[n\right]={1 \over N}\sum _{k=0}^{N-1}e^{i{\frac {2\pi }{N}}nk}{\hat {x}}[k]\qquad n=0,1,\ldots ,N-1.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/74d2a9e7f31ef1b808bfbc8d2355aff7703c2064)
可以記為:
![{\displaystyle x={\mathcal {F}}^{-1}{\hat {x}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fea2c3390e85bc43124e5a18ed59c7e9fa5d5d44)
實際上,DFT和IDFT轉換式中和式前面的歸一化系數並不重要。在上面的定義中,DFT和IDFT前的系數分別為
和
。有時會將這兩個系數都改成
。
從連續到離散[編輯]
連續時間信號
以及對應的連續傅立葉轉換
都是連續函數。由於數位系統只能處理有限長的離散信號,因此必須將
和
都離散化,並且建立對應的傅立葉轉換。
假設
時限於
,再通過時域採樣將
離散化,就可以得到有限長離散信號,記為
。設採樣週期為
,則時域採樣點數
。
![{\displaystyle x_{discrete}(t)=x(t)\sum _{n=0}^{N-1}\delta (t-nT)=\sum _{n=0}^{N-1}x(nT)\delta (t-nT)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/13dd08e2ee0b45069d0aad828d91eee1da3a56de)
它的傅立葉轉換為
![{\displaystyle {\hat {x}}_{discrete}(\omega )=\sum _{n=0}^{N-1}x(nT){\mathcal {F}}\delta (t-nT)=\sum _{n=0}^{N-1}x(nT)e^{-in\omega T}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/99e2900c2f7dc8cb1ef012177a4fb02502848396)
這就是
在時域採樣後的連續傅立葉轉換,也就是離散時間傅立葉轉換,它在頻域依然是連續的。
下面將頻域信號轉化為有限長離散信號。與對時域信號的處理類似,假設頻域信號是帶限的,再經過離散化,即可得到有限長離散信號。依據採樣定理,頻域採樣若要能完全重建原信號,頻域信號
應當帶限於
。由於時域信號時限於
,由採樣定理以及時頻對偶的關係,頻域的採樣間隔應為
。故,頻域採樣點數為:
![{\displaystyle {\frac {1/T}{1/L}}=N}](https://wikimedia.org/api/rest_v1/media/math/render/svg/697aafea9907d722305d5faede2367b84a727955)
即頻域採樣的點數和時域採樣同為
,頻域採樣點為
。
而DTFT在頻域上採樣:
![{\displaystyle {\hat {x}}[k]={\hat {x}}_{discrete}(\omega _{k})={\frac {1}{T}}\sum _{n=0}^{N-1}x[nT]e^{-i{\frac {2\pi }{N}}nk}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/83eedd5085dd500d5f7d7d2f03b6dfd7e4bdbbd6)
令
,將其歸一化,就得到前面定義的離散傅立葉轉換。因此,DFT就是先將信號在時域離散化,求其連續傅立葉轉換後,再在頻域離散化的結果。
DFT與CFT[編輯]
下面考察離散傅立葉轉換與連續傅立葉轉換(CFT,Continuous Fourier Transform)的關係。連續傅立葉轉換
![{\displaystyle {\mathcal {F}}x(t)={\hat {x}}(\omega )={\frac {1}{L}}\int _{0}^{L}x(t)e^{-i\omega t}dt}](https://wikimedia.org/api/rest_v1/media/math/render/svg/81765c7357e384430f6ca1e30654d22b23a3d864)
的採樣為:
![{\displaystyle {\hat {x}}(\omega _{k})={\frac {1}{L}}\int _{0}^{L}x(t)e^{-i\omega _{k}t}dt}](https://wikimedia.org/api/rest_v1/media/math/render/svg/53c61eb162d8d5dacffddfb9731ae4a312cd50c0)
將這個積分以黎曼和的形式近似,有:
![{\displaystyle {\hat {x}}(\omega _{k})\approx {\frac {1}{L}}\sum _{n=0}^{N-1}x[n]e^{-i\omega _{k}nT}T={\frac {1}{N}}{\hat {x}}[k]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/103c335c7408247ff029a6e4ac8493dc57dc62ad)
這一結論指出離散傅立葉轉換確實是連續傅立葉轉換在某種意義上的近似。不過必須注意以下兩點:
- 時域採樣必須滿足採樣定理
- 離散傅立葉轉換的處理物件是時限的
為此,通常對連續信號的時域採樣再做一次加窗處理(Windowing),這樣就得到帶限的有限長離散信號。
DFT與DTFT[編輯]
離散時間傅立葉轉換(DTFT)是在時域上對連續傅立葉轉換的採樣。DFT則是在頻域上對DTFT的均勻採樣。離散信號
(n=0,...,N-1)的DTFT為:
![{\displaystyle {\hat {x}}(e^{i\omega })=\sum _{n=0}^{N-1}x[n]e^{-in\omega }}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d079d9387528481918eb9e2ac9686fc8ffe2f2a2)
對
在離散的頻點
上採樣
![{\displaystyle {\hat {x}}[k]={\hat {x}}(e^{i\omega _{k}})=\sum _{n=0}^{N-1}x[n]e^{-i{\frac {2\pi }{N}}kn}\qquad k=0,\ldots ,N-1}](https://wikimedia.org/api/rest_v1/media/math/render/svg/495f6951be5f0273e07cef0bb64e7ee5310ffe76)
即為
的DFT。由於DTFT在頻域是週期的,所以在DTFT頻域上的均勻採樣也應是週期的。
實際上是這個週期序列的主值序列。
柵欄效應[編輯]
點序列的DFT只能在有限的
個頻點上觀察頻譜,這相當於從柵欄的縫隙中觀察景色,對於了解信號在整個頻域上的特性是不夠的。為了觀察到其他頻率的資訊,需要對原信號
做一些處理,以便在不同的頻點上採樣。
將原來在DTFT頻域上的採樣點數增加到
點,這樣採樣點位置變為
。則對應的DFT成為
![{\displaystyle {\hat {x}}'[k]={\hat {x}}(e^{ik\omega '_{k}})=\sum _{n=0}^{N-1}x[n]e^{-i{\frac {2\pi }{M}}kn}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/34ec3d791f0da32c11d497d7aad5b70fb3163dad)
若在序列
之後補上M-N個零,設為
,則上式變為
![{\displaystyle {\hat {x}}'[k]=\sum _{n=0}^{M-1}x'[n]e^{-i{\frac {2\pi }{M}}kn}={\mathcal {F}}x'}](https://wikimedia.org/api/rest_v1/media/math/render/svg/28bd0debc1aae0f960082ae3e65075f333c42a6c)
因此將
補零再做DFT就可以得到
的DTFT在其他頻率上的值,相當於移動了柵欄,因而能夠從其他位置進行觀察。
頻譜解像度[編輯]
點DFT的頻譜解像度是
。柵欄效應一節指出可以通過補零觀察到更多的頻點,但是這並不意味着補零能夠提高真正的頻譜解像度。這是因為
實際上是
採樣的主值序列,而將
補零得到的
週期延拓之後與原來的序列並不相同,也不是
的採樣。因此
與
是不同離散信號的頻譜。對於補零至
點的
的DFT,只能說它的解像度
僅具有計算上的意義,
並不是真正的、物理意義上的頻譜。頻譜解像度的提高只能在滿足採樣定理的條件下增加時域採樣長度來實現。
從空間的角度分析[編輯]
週期為N的離散信號構成一個N維歐幾里得空間
。在這一空間上兩個信號x和y的內積定義為
![{\displaystyle \langle x,y\rangle =\sum _{n=0}^{N-1}x[n]y^{*}\left[n\right]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f13ff7fffea851e9c9109597a0cf4a5e0a2e809c)
下面給出
上的一組正交基:
![{\displaystyle \{e_{k}[n]=e^{i{\frac {2\pi }{N}}kn}\}_{0\leq k<N}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fbced45f701fbae40d8b8fd9c99d1bd3446f8c41)
將信號x在這組正交基上分解,得
![{\displaystyle x=\sum _{k=0}^{N-1}{\frac {\langle x,e_{k}\rangle }{\Vert e_{k}\Vert ^{2}}}e_{k}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/4ba4c2623e3372462bb136113e699c9364f1e2ad)
令
![{\displaystyle {\hat {x}}[k]=\langle x,e_{k}\rangle =\sum _{n=0}^{N-1}x[n]e^{-i{\frac {2\pi }{N}}kn}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/eff3e84cd3d83f4333434301d3401c57905daad6)
此即為離散傅立葉轉換。又
![{\displaystyle \|e_{k}\|^{2}=N}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6127aa385bd374fc17c6599047bc925f150a7694)
則有
![{\displaystyle x[n]={\frac {1}{N}}\sum _{k=0}^{N-1}{\hat {x}}[k]e^{i{\frac {2\pi }{N}}kn}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/3b3769784fd1b1f283a74910baa632a264c2fc43)
此即為離散傅立葉轉換的逆轉換。
由此可知,在正交分解的角度上說,離散週期信號
的離散傅立葉轉換
實質上是
在正交基
上的分量。而從線性轉換的角度上說,
是圓周卷積的特徵向量,
則是對應的特徵值。
DFT與圓周卷積[編輯]
根據卷積定理,離散信號x與y的圓周卷積對偶於頻域上x與y離散傅立葉轉換的乘積。下面揭示DFT與圓周卷積的內在關係。
對長為N的離散信號
與
,如果要計算它們的卷積,就必須定義
與
在0≤n<N之外的值。如果將
與
作週期為N的延拓,則有
![{\displaystyle x[n]={\tilde {x}}[n\mod N]\qquad y[n]={\tilde {y}}[n\mod N]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f2f396b14bdc802a2c20c608c365062425239c40)
如此,週期為N的圓周卷積:
![{\displaystyle (x\otimes y)[n]=\sum _{m=0}^{N-1}x[m]y[n-m]=\sum _{m=0}^{N-1}x[n-m]y[m]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/14cd79279dadc66db4a8b6d0413387726080ae18)
卷積的結果仍然是以N為週期的離散信號。
前面指出,
是DFT的特徵向量,實際上它也是圓周卷積的特徵向量。定義x與y的圓周卷積算子:
![{\displaystyle {L}x[n]=(x\otimes y)[n]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6eb0cb170e7a883a32425b17e4bf273eb55ab2cb)
則
與y的圓周卷積為
![{\displaystyle {L}e_{k}[n]=e_{k}[n]\cdot \sum _{m=0}^{N-1}y[m]e_{k}[-m]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/51a8d0c0bd4ab397e90060a7998ff030c02561cd)
顯然,y的DFT
![{\displaystyle {\hat {y}}[k]=\sum _{m=0}^{N-1}y[m]e_{k}[-m]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/875bba0bc3622841463d9b5c27b33d08c0e27ca7)
就是圓周卷積的特徵值。
完全性[編輯]
離散傅立葉轉換是可逆的線性轉換
![{\displaystyle {\mathcal {F}}:\mathbf {C} ^{N}\to \mathbf {C} ^{N}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c70e9893ee0d907cbaf300f0eb55d6eef1435992)
其中C表示複數集。即,任意N-維複向量都存在DFT和IDFT,而且其DFT和IDFT也是N-維複向量。
正交性[編輯]
向量組exp(2πi kn/N)是N-維複數空間上的一組正交基:
![{\displaystyle \sum _{n=0}^{N-1}\left(e^{{\frac {2\pi i}{N}}kn}\right)\left(e^{-{\frac {2\pi i}{N}}k'n}\right)=N~\delta _{kk'}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/058c5919532cd97efc13dd3b0685bc0c91ff698b)
其中δkn是Kronecker delta。
移位定理[編輯]
時域信號序列
的相位移動
(其中
為整數)在頻域反映為「循環移位」,即:頻域信號序列
變為
,其中下標是指將k-m對N 取余。類似的,由對偶性,時域信號序列的循環移位對應於頻域信號序列的相移:
- 若
![{\displaystyle {\mathcal {F}}(\{x_{n}\})_{k}=X_{k}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/779594ea1841b78e998a1743ea747f4955886b8c)
- 則
![{\displaystyle {\mathcal {F}}(\{x_{n}e^{{\frac {2\pi i}{N}}nm}\})_{k}=X_{k-m}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d6a636031b44a632885606eb540d610b25cce8e8)
- 且有
![{\displaystyle {\mathcal {F}}(\{x_{n-m}\})_{k}=X_{k}e^{-{\frac {2\pi i}{N}}km}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/0e235eb7a88e930d3d800d639b63770df3cd582e)
週期性[編輯]
上文中DFT與DTFT一節已經證明,離散序列的傅立葉轉換是週期的。有限長序列
的離散傅立葉轉換
可以被看作是它的週期延拓序列
的離散時間傅立葉轉換
。由時頻對偶性可知
也可以被看作它的週期延拓的主值。
上一節的移位定理隱含着DFT的週期性,因為DFT的幅度
不受輸入信號的循環移位的影響,因為時移在頻域對偶於相移,循環移位僅僅使DFT的相位產生平移。週期性的邊界條件在DFT的許多應用中有重要作用。解差分方程時,就假設邊界條件是滿足週期性的,這是一個很有用的性質(參見應用)。
普朗歇爾定理與帕塞瓦爾定理[編輯]
如果Xk和Yk分別是xn和yn的離散傅立葉轉換,那麼就有普朗歇爾定理:
![{\displaystyle \sum _{n=0}^{N-1}x_{n}y_{n}^{*}={\frac {1}{N}}\sum _{k=0}^{N-1}X_{k}Y_{k}^{*}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7ec331ced0e765faf4c59c763de58fcad749553c)
其中星號表示復共扼。帕塞瓦爾定理是普朗歇爾定理的一個特例:
![{\displaystyle \sum _{n=0}^{N-1}|x_{n}|^{2}={\frac {1}{N}}\sum _{k=0}^{N-1}|X_{k}|^{2}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/fa55a92d71c71d218337165cdd097c038c14d92f)
DFT在諸多多領域中有着重要應用,下面僅是頡取的幾個例子。需要指出的是,所有DFT的實際應用都依賴於計算離散傅立葉轉換及其逆轉換的快速算法,即快速傅立葉轉換。
快速傅立葉轉換[編輯]
快速傅立葉轉換(即FFT)是計算離散傅立葉轉換及其逆轉換的快速算法。按照DFT的定義計算一個長為n的序列的DFT需要的計算複雜度達到了
,而同樣長度FFT的計算複雜度僅為
。由於DFT的逆轉換可以由DFT表示,所以DFT逆轉換的計算同樣可以由FFT完成。FFT算法的提出,使DFT得到了廣泛的實際應用。
頻譜分析[編輯]
前面指出,DFT是連續傅立葉轉換的近似。因此可以對連續信號x(t)均勻採樣並截斷以得到有限長的離散序列
,對這一序列作離散傅立葉轉換,可以分析連續信號x(t)頻譜的性質。前面還提到DFT應用於頻譜分析需要注意的兩個問題:即採樣可能導致信號混疊和截斷信號引起的頻譜泄漏。可以通過選擇適當的採樣頻率(見奈奎斯特頻率)消減混疊。選擇適當的序列長度並加窗可以抑制頻譜泄漏。
數據壓縮[編輯]
由於人類感官的分辨能力存在極限,因此很多有損壓縮算法利用這一點將語音、音頻、圖像、視頻等信號的高頻部分除去。高頻信號對應於信號的細節,濾除高頻信號可以在人類感官可以接受的範圍內獲得很高的壓縮比。這一去除高頻分量的處理就是通過離散傅立葉轉換完成的。將時域或空域的信號轉換到頻域,僅儲存或傳輸較低頻率上的系數,在解壓縮端採用逆轉換即可重建信號。
解偏微分方程[編輯]
離散傅立葉轉換及其多維形式在偏微分方程的求解中也有應用。此時DFT被看作傅立葉級數的近似。傅立葉級數將函數在複指數einx上展開,這正是微分算子的特徵方程:d/dx einx = in einx。因此,通過傅立葉級數的形式,線性常微分方程被轉換為代數方程,而後者是很容易求解的。此時得到的結果是偏微分方程解的級數表示,只要通過DFT逆轉換即可得到其一般表示。這種方法被稱作譜方法或級數解法。
長整數與多項式乘法[編輯]
目前長整數或多項式乘法最快速的算法是基於離散傅立葉轉換的。由於整數(或多項式)乘法是逐位(或逐項)乘累加的形式,因此整數(或多項式)乘積的數字(或系數)可以用乘數數字(或乘式系數)的卷積表示。利用卷積定理,只要將數字(或系數)序列通過離散傅立葉轉換變到頻域,就可以將逐個乘累加的卷積變為對位的乘法,從而減少計算量,再以一次逆轉換便可以得到乘法結果。需要注意整數乘法還有進位的問題。下面以多項式乘法為例說明這一應用:
假設需要計算多項式乘法c(x) = a(x)·b(x),這一乘積結果的各項系數的表達式實際上是線性卷積的形式。由於離散傅立葉轉換對應於圓周卷積,因此需要將這兩個乘式的系數按照次數升序排列,序列後「補零」,使它們的長度d大於兩式最高項次數的和:d > deg(a(x)) + deg(b(x))。然後作圓周卷積:
![{\displaystyle \mathbf {c} =\mathbf {a} \otimes \mathbf {b} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/061892cd768e651337ae585ed6440e3ea5797cec)
其中c就是c(x)系數的向量。由於圓周卷積的DFT是乘積,有:
![{\displaystyle {\mathcal {F}}\mathbf {c} ={\mathcal {F}}\mathbf {a} \cdot {\mathcal {F}}\mathbf {b} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/70ced1f68fb20e0339a73c5bed1ea77ee615dce8)
則
![{\displaystyle \mathbf {c} ={\mathcal {F}}^{-1}({\mathcal {F}}\mathbf {a} \cdot {\mathcal {F}}\mathbf {b} )}](https://wikimedia.org/api/rest_v1/media/math/render/svg/31d50a903f9e1e12ce089f1121cf201c9b1ad50f)
利用快速傅立葉轉換,這一算法的運算複雜度為
。
OFDM[編輯]
OFDM(正交頻分復用)在寬帶無線通信中有重要的應用。這種技術將帶寬分為N個等間隔的子載波,可以證明這些子載波相互正交。尤其重要的是,OFDM調製可以由IDFT實現,而解調可以由DFT實現。OFDM還利用DFT的移位性質,在每個幀頭部加上循環前綴(Cyclic Prefix),使得只要信道延時小於循環前綴的長度,就能消除信道延時對傳輸的影響。
特殊例子[編輯]
數論轉換[編輯]
數論轉換是離散傅利葉轉換(DFT)的一個特例
,此運算是根據模運算 而取得的,
需要是質數 ,如此可以建構出有限體,並且存在
個可以整除
的實數根。如此可以得到
,
為正整數。令
為第
個單位根,則第
個單位根
可以表示成
。另外,再令
為
次方
模運算之循環個數。
則數論矩陣為
與
各為 Column 與 Row 的指數(index), 令
與
各代表Column 與 Row 的總數,則
,
.
舉個例子來說,當
則
因為
經
的模運算為
,因此可以判定此情況為
個次方一循環,所以
,
可以整除
。則數論矩陣可以表示成
在一些特殊的情況下,令
,而
不是值數也是有意義的。像是 Fermat Number Transform 中
,以及 Mersenne Number Transform 中
.
參考文獻[編輯]
- Oppenheim, Alan V.; Schafer, R. W.; and Buck, J. R., (1999). Discrete-time signal processing, Upper Saddle River, N.J. : Prentice Hall. ISBN 0137549202
- Mallat, S., A Wavelet Tour of Signal Processing, Second Edition, Academic Press, ISBN 0-12-466606-x
- Gill, J., Fourier Transform and Its Applications([1] (頁面存檔備份,存於互聯網檔案館))